﻿/**
 *		CRC校验部分
 *@author		吴建凰
 *@date			2015年7月18日
 */
#ifndef OSS_CRC_H
#define OSS_CRC_H


#include <ossType.h>
/**
 *		modbus的crc校验方法
 *@buff		待校验的内存
 *@len		需要校验的长度
 *@return	返回校验结果
 */
Word OssModusCRC16 ( Byte * buff, int len);

/**
 *		检测数据是否符合modbus的数据是否OK
 *@buff		待检验的内存,包含crc校验码
 *@len		需要检验的长度
 *@return	数据OK，返回true
 *			否则返回false
 */
Bool OssCheckModbusDataCrc16(Byte * buff, int len);


/**
 *		和校验
 *@buff		待校验的内存
 *@len		需要校验的长度
 *@return	返回校验结果
 */
Byte OssSum8(Byte * buff, int len);

/**
 *		检测数据是否符合和校验
 *@buff		待检验的内存,包含校验码
 *@len		需要检验的长度
 *@return	数据OK，返回true
 *			否则返回false
 */
Bool OssCheckSum8(Byte * buff, int len);

/**
 *		偶校验
 */
Word OssEvenParity16(Byte* buff,int len);
Byte OssEvenParity8(Byte* buff,int len);

/**
 *		检验偶校验
 */
Bool OssCheckEvenParity16(Byte* buff,int len,Word evenVal);
Bool OssCheckEvenParity8(Byte* buff,int len,Byte evenVal);


#endif
